package innova.negocio;

import innova.dao.IdeaDAO;
import innova.modelo.Idea;
import innova.modelo.Usuario;

import java.util.Collection;
import java.sql.Date;

public class GestionIdea {

	private IdeaDAO dao = new IdeaDAO();
	
	public Collection<Idea> buscarPorTitulo(String titulo)
			throws Exception {
		return dao.buscarPorTitulo(titulo);
	}

	public Idea insertar(String tituloIdea, 
			String descripcionIdea, 
			String palabraClave01, 
			String palabraClave02, 
			String palabraClave03, 
			String palabraClave04, 
			String archivoIdea, 
			String estadoIdea, 
			Date fechaCreacionIdea, 
			Usuario usuario, 
			Usuario asesor)
					throws Exception {
		Idea vo = new Idea();
		vo.setTituloIdea(tituloIdea);
		vo.setDescripcionIdea(descripcionIdea);
		vo.setPalabraClave01(palabraClave01);
		vo.setPalabraClave02(palabraClave02);
		vo.setPalabraClave03(palabraClave03);
		vo.setPalabraClave04(palabraClave04);
		vo.setArchivoIdea(archivoIdea);
		vo.setEstadoIdea(estadoIdea);
		vo.setFechaCreacionIdea(fechaCreacionIdea);
		vo.setUsuario(usuario);
		vo.setAsesor(asesor);

		return dao.insertar(vo);
	}

	public Idea obtener(int idIdea) throws Exception {
		return dao.obtener(idIdea);
	}

	public void eliminar(int idIdea) throws Exception {
		dao.eliminar(idIdea);
	}

	public Idea actualizar(int idIdea, 
			String tituloIdea, 
			String descripcionIdea, 
			String palabraClave01, 
			String palabraClave02, 
			String palabraClave03, 
			String palabraClave04, 
			String archivoIdea, 
			String estadoIdea, 
			Date fechaCreacionIdea, 
			Usuario usuario, 
			Usuario asesor)
					throws Exception {
		Idea vo = new Idea();
		vo.setIdIdea(idIdea);
		vo.setTituloIdea(tituloIdea);
		vo.setDescripcionIdea(descripcionIdea);
		vo.setPalabraClave01(palabraClave01);
		vo.setPalabraClave02(palabraClave02);
		vo.setPalabraClave03(palabraClave03);
		vo.setPalabraClave04(palabraClave04);
		vo.setArchivoIdea(archivoIdea);
		vo.setEstadoIdea(estadoIdea);
		vo.setFechaCreacionIdea(fechaCreacionIdea);
		vo.setUsuario(usuario);
		vo.setAsesor(asesor);

		return dao.actualizar(vo);
	}
	
	public Idea actualizarAsesor(int idIdea, Usuario asesor) throws Exception {
		Idea vo = new Idea();
		vo.setIdIdea(idIdea);
		vo.setAsesor(asesor);

		return dao.actualizarAsesor(vo);
	}

	public Collection<Idea> listar() throws Exception {
		return dao.listar();
	}
	
	public Collection<Idea> buscarReporte(String texto,
			String fechaCreacionIdeaInicio,
			String fechaCreacionIdeaFin,
			String estadoIdea)
					throws Exception {
		return dao.buscarReporte(texto, fechaCreacionIdeaInicio, fechaCreacionIdeaFin, estadoIdea);
	}
	
	public Collection<Idea> buscarPorUsuario(int idUsuario)
			throws Exception {
		return dao.buscarPorUsuario(idUsuario);
	}
	
	public Idea actualizarEstado(int idIdea, String estadoIdea) throws Exception {
		Idea vo = new Idea();
		vo.setIdIdea(idIdea);
		vo.setEstadoIdea(estadoIdea);

		return dao.actualizarEstado(vo);
	}
	
	public Collection<Idea> buscarPorUsuarioAsesor(int idUsuario, int idAsesor) throws Exception {
		return dao.buscarPorUsuarioAsesor(idUsuario, idAsesor);
	}
	
}
